# -*- coding: utf-8 -*-
from django.http import HttpResponseRedirect
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
from django.utils import simplejson
from django.core.urlresolvers import reverse
from django.core import serializers
#from amway.forms import TempForm
from apps.amway.models import Producto, Cliente, EmpresariosAmway, PrestamosProductos, TipoTransaccion, PreciosProducto, Inventario
from apps.l10n.models import Country, AdminArea, City
from datetime import date
################################################################################
################################################################################
################################################################################
################################################################################
##### Vistas para el uso de Ajax
def buscar_producto(request):
    results = []    
    if request.method == "GET":
        if 'q' in request.GET:
            value = request.GET['q']
            if len(value) > 1:
                model_results = Producto.objects.filter(referencia__icontains=value)
                results = [ (x.__unicode__(), x.descripcion) for x in model_results ]
    json = simplejson.dumps(results)    
    return HttpResponse(json, mimetype='application/json')
#################################################################################
def buscar_cliente(request):
    results = []    
    if request.method == "GET":
        if 'q' in request.GET:
            value = request.GET['q']
            #if len(value) > 2:
            model_results = Cliente.objects.filter(nombre__icontains=value)
            results = [ (x.__unicode__(), x.nombre) for x in model_results ]
    json = simplejson.dumps(results)    
    return HttpResponse(json, mimetype='application/json')
################################################################################
def buscar_empresario(request):
    results = []    
    if request.method == "GET":
        if 'q' in request.GET:
            value = request.GET['q']
            usuario = request.GET['user']            
            model_results = EmpresariosAmway.objects.filter(usuario__username=usuario, nombre__icontains=value)
            results = [ (x.__unicode__(), x.nombre) for x in model_results ]
    json = simplejson.dumps(results)    
    return HttpResponse(json, mimetype='application/json')
################################################################################
def buscar_ciudad(request, departamento_id):
    model_results = City.objects.filter(admin_area__pk=departamento_id).order_by('name')    
    json = serializers.serialize("json", model_results)
    return HttpResponse(json, mimetype='application/javascript')
#################################################################################
def buscar_prestamo(request, transaccion_id):    
    usuario = request.user    
    tt = TipoTransaccion.objects.get(pk=transaccion_id)    
    model_results = PrestamosProductos.objects.filter(tipo_prestamo__exact=tt, usuario=usuario)
    results = list()
    for prestamo in model_results:
        dict = { 'pk': prestamo.id, 'fields' :  { 'empresario' : '%s %s' %(prestamo.empresario.nombre, prestamo.empresario.apellido), 'producto' : '%s' %prestamo.producto.descripcion,
                                                  'cantidad': prestamo.cantidad, 'fecha': '%s' %prestamo.fecha, 'tipo_prestamo' : '%s' %prestamo.tipo_prestamo.tipo_transaccion } }
        results.append(dict)       
    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/javascript')    
#################################################################################
def buscar_producto_1(request, slug_marca):
    fecha = date.today()    
    model_results = PreciosProducto.objects.select_related().filter(producto__slug_marca__exact=slug_marca, fecha_inicio__lte=fecha, fecha_final__gte=fecha).order_by('producto__descripcion')    
    results = list()
    for producto in model_results:
        dict = { 'pk': producto.producto.pk, 'fields' : { 'descripcion' : '%s' %producto.producto.descripcion, 'precio' : '%s' %producto.precio_catalogo } }
        results.append(dict)    
    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/javascript')        
#################################################################################
def buscar_inventario(request, slug_marca):
    usuario = request.user
    model_results = Inventario.objects.select_related().filter(usuario=usuario, producto__slug_marca__exact=slug_marca, existencias__gt=0).order_by('existencias')
    results = list()
    for prod_inv in model_results:
        dict = { 'pk': prod_inv.pk, 'fields' : { 'descripcion' : '%s' %prod_inv.producto.descripcion, 'existencias' : '%s' %prod_inv.existencias } }
        results.append(dict)    
    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/javascript')
#################################################################################
def ejemplos_ajax(request):    
    #if request.method == 'POST':
    #    form = form_class(request.POST)
    #    cod = request.POST['ciudad']
    #    if form.is_valid():
    #        print cod
    #        form.print_form(cod)
    #        return HttpResponseRedirect(reverse('ejmplos_ajax'))
    #else:
    #    form = form_class()
    #    #form.print_form()
    
    if request.POST.getlist('devolver_prestamo'):
        prestamos = request.POST.getlist('devolver_prestamo')
        #for prestamo in prestamos:
        #    p = PrestamosProductos.objects.get(pk=prestamo)
        #    p.delete()
    
    
    
    return render_to_response("buscar.html",                              
                              context_instance=RequestContext(request))
################################################################################
def prueba(request):
    if request.POST.getlist('devolver_prestamo'):
         prestamos = request.POST.getlist('devolver_prestamo')
         print prestamos
    post_text = request.POST['post_data']
    print post_text
    return HttpResponse("{'response_text': '"+post_text+" recieved.'}", 
                                   mimetype="application/json")
################################################################################

#def buscar_depto(request):
#    results = []
#    if request.method == "GET":
#        if 'id' in request.GET:
#            value = request.GET['id']
#            model_results = Departamento.objects.filter(pais__exact=value).order_by('nombre')
#            results = [ (x.codigo, x.nombre) for x in model_results ]
#    json = simplejson.dumps(results)    
#    return HttpResponse(json, mimetype='application/json')
################################################################################
#def buscar_producto(request):
#    results = []
#    json=""
#    if request.method == "GET":
#        
#
#        value = request.GET['tag']
#        if len(value) > 2:
#            model_results = Producto.objects.filter(referencia__icontains=value)[0:5]
#            results = [ {"caption":x.descripcion,"value":x.codigo} for x in model_results ]
#            json = simplejson.dumps(results)
#    return HttpResponse(json, mimetype='application/json')
##############################################################################  
